package com.york.tinyrpc.protoss.registry.center;

import com.york.tinyrpc.protoss.spi.SpiLoader;

/**
 * 使用SPI机制加载注册中心
 */
public class RegistryCenterFactory {

    /**
     * 静态代码块赋值
     */
    static {
        SpiLoader.load(RegistryCenter.class);
    }

    /**
     * 提供默认的注册中心
     */
    private static final RegistryCenter DEFAULT_REGISTRY_CENTER = new EtcdRegistryCenter();

    /**
     * 获取指定注册中心，提供默认
     */
    public static RegistryCenter getRegistryCenterByType(String registryCenterType) {
        return SpiLoader.getInstance(RegistryCenter.class, registryCenterType);
    }
}
